<?php

class Usuario extends Controller {

	function __construct(){
		parent::Controller();
		$this->load->library('session');	
	}

  function login($dados){
    $this->load->helper('form');
  	$this->load->model('Usuario_model', 'usu');
  	$campos = $this->usu->campos;
  	
  	if(substr($dados,1,1)=='&')
  	{
      list($op, $id_produto) = explode("&", $dados);
    }  	
  	else
  	{
      $id_produto='';
      $op=$dados;  	
  	}
  	  		
  	if($this->input->post('cpf')){
  	  $cpf = str_replace('-','',str_replace('.','',$this->input->post('cpf')));
  	  $result_verifcpf=$this->usu->login_verifcpf($cpf);
  	  if(count($result_verifcpf)>0){
    	  
        if(strlen($result_verifcpf[0]->Cli_nome)>0){
          $nome = $result_verifcpf[0]->Cli_nome;
        }
        else{
          $nome= "";
        }
          	  
        $cpf = substr($result_verifcpf[0]->Cli_cpfcnpj,0,3).".".
               substr($result_verifcpf[0]->Cli_cpfcnpj,3,3).".".
               substr($result_verifcpf[0]->Cli_cpfcnpj,6,3)."-".
               substr($result_verifcpf[0]->Cli_cpfcnpj,9,2); 	  
        
        
        if(strlen($result_verifcpf[0]->Cli_rg)>0){
          $rg = substr($result_verifcpf[0]->Cli_rg,0,2).".".
                substr($result_verifcpf[0]->Cli_rg,2,3).".".
                substr($result_verifcpf[0]->Cli_rg,5,3)."-".
                substr($result_verifcpf[0]->Cli_rg,8,1);
        }
        else{
          $rg= "";
        }
              
        if(strlen($result_verifcpf[0]->Cli_email)>0){
          $email = $result_verifcpf[0]->Cli_email;
        }
        else{
          $email= "";
        } 
        
        if( !empty($result_verifcpf[0]->Cli_dtnasc)){
          $dia = substr($result_verifcpf[0]->Cli_dtnasc,8,2);
          $mes = substr($result_verifcpf[0]->Cli_dtnasc,5,2);
          $ano = substr($result_verifcpf[0]->Cli_dtnasc,0,4);
                    
          $dt_nasc = date("d/m/Y", mktime(0,0,0,$mes,$dia,$ano));
        }
        else{
          $dt_nasc ="";
        }
        
        if($result_verifcpf[0]->Cli_sexo!=""){
          $sexo = $result_verifcpf[0]->Cli_sexo;
        }
        else{
          $sexo = 0;
        } 
                
        if(strlen($result_verifcpf[0]->Cli_cepres)>0){
          $cep_resid =  substr($result_verifcpf[0]->Cli_cepres,0,5)."-".
                      substr($result_verifcpf[0]->Cli_cepres,5,3);
        }
        else{
          $cep_resid ="";
        }
                       
        if(strlen($result_verifcpf[0]->Cli_cepcom)>0){              	
          $cep_com = 	substr($result_verifcpf[0]->Cli_cepcom,0,5)."-".
                      substr($result_verifcpf[0]->Cli_cepcom,5,3);
        }
        else{
          $cep_com ="";
        }
        
        if(strlen($result_verifcpf[0]->Cli_teldddres)>0 && strlen($result_verifcpf[0]->Cli_telres)>0 ){               	
          $telefone_resid = "(".substr($result_verifcpf[0]->Cli_teldddres,0,2).") ".
                          substr($result_verifcpf[0]->Cli_telres,0,4)."-".
                          substr($result_verifcpf[0]->Cli_telres,4,4);
        }
        else{
          $telefone_resid="";
        }
                          
        if(strlen($result_verifcpf[0]->Cli_teldddcom)>0 && strlen($result_verifcpf[0]->Cli_telcom)>0 ){                  
          $telefone_com = "(".substr($result_verifcpf[0]->Cli_teldddcom,0,2).") ".
                            substr($result_verifcpf[0]->Cli_telcom,0,4)."-".
                            substr($result_verifcpf[0]->Cli_telcom,4,4);
        }
        else{
          $telefone_com="";
        }
        
        if(strlen($result_verifcpf[0]->Cli_teldddcel)>0 && strlen($result_verifcpf[0]->Cli_telcel)>0 ){
          $celular = "(".substr($result_verifcpf[0]->Cli_teldddcel,0,2).") ".
                       substr($result_verifcpf[0]->Cli_telcel,0,4)."-".
                       substr($result_verifcpf[0]->Cli_telcel,4,4);
        }
        else{
          $celular = "";
        }
                     
        if(strlen($result_verifcpf[0]->Cli_endres)>0){
           $endereco_resid = $result_verifcpf[0]->Cli_endres;
           $numero_resid="";
           $complemento_resid="";

        }
        else{
          $endereco_resid="";
          $numero_resid=""; 
          $complemento_resid="";
        }                                    
        
        if(strlen($result_verifcpf[0]->Cli_endcom)>0){
            $endereco_com = $result_verifcpf[0]->Cli_endcom;
            $numero_com="";
            $complemento_com="";		        
        }
        else{
          $endereco_com="";
          $numero_com="";
          $complemento_com="";
        }

        if(strlen($result_verifcpf[0]->Cli_baires)>0){
          $bairro_resid = $result_verifcpf[0]->Cli_baires;
        }
        else{
          $bairro_resid="";
        }
        
        if(strlen($result_verifcpf[0]->Cli_baicom)>0){
          $bairro_com = $result_verifcpf[0]->Cli_baicom;
        }
        else{
          $bairro_com="";
        }
        
        if(strlen($result_verifcpf[0]->Cli_cidres)>0){
          $cidade_resid = $result_verifcpf[0]->Cli_cidres;
        }
        else{
          $cidade_resid ="";
        }
        
        if(strlen($result_verifcpf[0]->Cli_cidcom)>0){
          $cidade_com = $result_verifcpf[0]->Cli_cidcom;
        }
        else{
          $cidade_com ="";
        }
        
        if(strlen($result_verifcpf[0]->Cli_ufres)>0){
          $estado_resid = $result_verifcpf[0]->Cli_ufres;
        }
        else{
          $estado_resid="";
        }
        
        if(strlen($result_verifcpf[0]->Cli_ufcom)>0){
          $estado_com = $result_verifcpf[0]->Cli_ufcom;
        }
        else{
          $estado_com="";
        }
  
    	  
        $dados= array(
          'nome' => $nome,
          'apelido' => '',
          'cpf' => $cpf,
          'rg' => $rg,
          'orgao_expedidor'  => '',
          'uf_rg' => '',
          'dt_nasc' => $dt_nasc,
          'sexo' => $sexo,
          'nacionalidade' => '',
          'estado_civil' => '',
          'profissao' => '',
          'email' => $email,
          'senha' => '',
          'endereco' => $endereco_resid,
          'numero' => $numero_resid,
          'complemento' => $complemento_resid,
          'bairro' => $bairro_resid,
          'cep' => $cep_resid,
          'cidade' => $cidade_resid,
          'estado' => $estado_resid,
          'telefone' => $telefone_resid,
          'celular' => $celular,
          'endereco_comercial' => $endereco_com,
          'numero_comercial' => $numero_com,
          'complemento_comercial' => $complemento_com,
          'bairro_comercial' => $bairro_com,
          'cep_comercial' => $cep_com,
          'cidade_comercial' => $cidade_com,
          'estado_comercial' => $estado_com,
          'telefone_comercial' => $telefone_com,
		  'data_cadastro' => date("y-m-d H:i:s").,
          'exportado' => 0,
          'Cli_cod' => $result_verifcpf[0]->Cli_cod
        );
                     	  
        $this->usu->cadastrar($dados);
        $consulta_cliente  = $this->usu->dados_clientecpf($cpf);
        $dados_session = array(
                   'id'=>$consulta_cliente[0]->cliente_id,
                   'apelido'=>$consulta_cliente[0]->nome,		
                   'email'  => $consulta_cliente[0]->email,
                   'logado' => TRUE,
                   'compra'=>1
                    );
        $set_session= $this->session->set_userdata($dados_session);
      
        redirect('/usuario/atualizar/'.$consulta_cliente[0]->cliente_id, 'refresh');
    	}
    	else
    	{
    	  redirect('usuario/login/0');
    	} 
  	}  	
  	elseif($this->input->post('email')&&$this->input->post("senha")){
    	$result=$this->usu->login_verif($this->input->post("email"),$this->input->post("senha"));
    		    
    	if(count($result)>0){//verifica o email e senha do usuario
      	$verifica_pedido=$this->usu->verifica_compra($result[0]->cliente_id);
        if(count($verifica_pedido)==0){//verifica se o cliente ja efetuou um pedido
        	$cpf = str_replace('-','',str_replace('.','',$result[0]->cpf));
        	$verifica_pedidoweb=$this->usu->verifica_compraweb($cpf);
      	 	if(count($verifica_pedidoweb)>0){//verifica se o cliente esta na tabela clientes do sqlserver
      	 	  //cliente ja efetuou uma compra
      	    $dados_session = array(
              'id'=>$result[0]->cliente_id,
              'apelido'=>$result[0]->apelido,		
              'email'  => $this->input->post("email"),
              'logado' => TRUE,
              'compra'=>1
              );
      	  }
      	  else{
      	    //cliente não efetuou nenhuma compra
      	    $dados_session = array(
              'id'=>$result[0]->cliente_id,
              'apelido'=>$result[0]->apelido,
              'email'  => $this->input->post("email"),
              'logado' => TRUE,
              'compra'=>0
              );      	  
      	  }//verifica se o cliente esta na tabela clientes do sqlserver
      	}//verifica se o cliente ja efetuou um pedido
      	else{
          	$dados_session = array(
              'id'=>$result[0]->cliente_id,
              'apelido'=>$result[0]->apelido,		
              'email'  => $this->input->post("email"),
              'logado' => TRUE,
              'compra'=>1
              );
        	
        }//fim do verifica se o cliente ja efetuou uma compra
      
        $set_session= $this->session->set_userdata($dados_session);
        if($op==1){  
      	  redirect('/carrinho/gerar_pedido', 'refresh');
      	}
      	elseif($op==2){  
      	  redirect('/carrinho/adicionar_item/'.$id_produto, 'refresh');
      	}
      	else{
        	redirect('/home/', 'refresh');
      	}
    	}
    	else{
      	echo "<script type='text/javascript'>alert('E-mail ou senha não cadastrado');</script>";
      	$data['titulo']= "Faça o seu login para continuar a sua compra";   
      	$this->load->view('login_cliente',$data);    
    	}
  	}
  	else{
    	if($op==1){  
        $data['titulo']= "Faça o seu login para continuar a sua compra";           
      }
      else{
        $data['titulo']= "Faça o seu login para acessar a página de produtos personalizados";
      }
      //$data['titulo'] = "Login";
    	$this->load->view('login_cliente', $data);
  	}
  }
  
  function ver_cadastro($acao=''){
    $this->load->helper('form');
  	$this->load->model('Usuario_model', 'usu');
  	$campos = $this->usu->campos;
    
    if($this->session->userdata('logado')!=1){
      redirect('usuario/login/0');
    }
    	
    $data['formulario']= "";
    $data['pedido']= "";
    $data['acao'] = $acao;
    
    $resultado_cliente=$this->usu->dados_cliente($this->session->userdata('id'));
    $resultado_pedido=$this->usu->dados_pedido($this->session->userdata('id'));
    
    foreach($campos as $campo){
      if($campo['name']!='senha2' && $campo['name']!='senha'){
      switch($campo['name']){
      	case 'estado_civil':
          $resultado_estado_civil=$this->usu->estado_civil($resultado_cliente[0]->$campo['name']);
          $campo['value']=$resultado_estado_civil[0]->descricao;
          break;
        case 'sexo':
          $resultado_sexo=$this->usu->sexo($resultado_cliente[0]->$campo['name']);
          $campo['value']=$resultado_sexo[0]->descricao;
          break;
        case 'dt_nasc':
          $dia = substr($resultado_cliente[0]->$campo['name'],8,2);
          $mes = substr($resultado_cliente[0]->$campo['name'],5,2);
          $ano = substr($resultado_cliente[0]->$campo['name'],0,4);
          
          $dt_nasc_new = date("d/m/Y", mktime(0,0,0,$mes,$dia,$ano));
          $campo['value']=$dt_nasc_new;
          break;
        default:
          $campo['value']=$resultado_cliente[0]->$campo['name'];
        }
             
        $data['formulario'].="<span>".$campo['title'].": ".$campo['value']."</span>";
      }
  	}
    
    if(count($resultado_pedido)>0){
      foreach($resultado_pedido as $dados)
      {
        $dia = substr($dados->data_compra,8,2);
        $mes = substr($dados->data_compra,5,2);
        $ano = substr($dados->data_compra,0,4);
        
        $hora = substr($dados->data_compra,11,2);
        $min = substr($dados->data_compra,14,2);
        $sec = substr($dados->data_compra,17,4);
        
        $data_compra_new = date("d/m/Y H:i:s", mktime($hora,$min,$sec,$mes,$dia,$ano));
        
        $data['pedido'].="<span>".$dados->id."</span>";
        $data['pedido'].="<span>".$data_compra_new."</span>";
        $data['pedido'].="<span>R$ ".number_format($dados->valor_total, 2, ',', '.')."</span>";

        $atts = array(
          'width'      => '680',
          'height'     => '600',
          'scrollbars' => 'yes',
          'status'     => 'yes',
          'resizable'  => 'yes',
          'screenx'    => '0',
          'screeny'    => '0'
            );
            
        switch($dados->status){
          case 0:
            $status_new="Aberto";
            $data['pedido'].="<span>Aberto</span>";
            $data['pedido'].="<span>&nbsp;</span>";
            break;
        	case 3:
            $data['pedido'].="<span>Aguardando Pagto</span>";
            $data['pedido'].="<span>".anchor_popup('contrato/ver_contrato/'.$dados->id,'<img src="'.base_url().'css/images/doc.png" title="Visualizar Contrato" border="0"><br/>Visualizar Contrato',$atts )."</span>";
            break;
        	case 4:
            $data['pedido'].="<span>Aprovado</span>";
            $data['pedido'].="<span>".anchor_popup('contrato/ver_contrato/'.$dados->id,'<img src="'.base_url().'css/images/doc.png" title="Visualizar Contrato" border="0"><br/>Visualizar Contrato',$atts )."</span>";
            break;
          case 5:
            $data['pedido'].="<span>Em Análise</span>";
            $data['pedido'].="<span>".anchor_popup('contrato/ver_contrato/'.$dados->id,'<img src="'.base_url().'css/images/doc.png" title="Visualizar Contrato" border="0"><br/>Visualizar Contrato',$atts )."</span>";
            break;
          case 6:
            $data['pedido'].="<span>Cancelado</span>";
            $data['pedido'].="<span>&nbsp;</span>";
            break;
          default:
            $data['pedido'].="<span>Pedido Não Concluído</span>";
            $data['pedido'].="<span>&nbsp;</span>";
        }
      }
    }


    $data['titulo'] = "Meu Cadastro";
    
    $this->load->view('dados_cliente', $data);  	
  }
	
	function cadastro(){	
  	$this->load->helper('form');
  	$this->load->model('Usuario_model', 'usu');
  	$campos = $this->usu->campos;
  		
  	$data['formulario']= "";

    if($this->input->post('nome')){		 
    	$dados = array();

      $result_cadastro=$this->usu->cadastro_verif($this->input->post("email"));

      if(count($result_cadastro)>0){    	
      	$this->load->library('form_validation');
        $this->form_validation->set_rules('email', 'email', 'callback_email_check');	
        if ($this->form_validation->run() == FALSE){
          $data['erro'] = TRUE; 
        }
      }
    	else{            	
      	if($this->input->post('senha')!=$this->input->post('senha2')){
       	
      	}
      	else{
          foreach($campos as $campo){
            if($campo['name']!="senha2"){
              $dados[$campo['name']] = $this->input->post($campo['name']);
            }
          }    
          $this->load->library('form_validation');
        	$this->form_validation->set_rules('cpf', 'cpf', 'callback_cpf_check');
      		
        	if ($this->form_validation->run() == FALSE){
          	$data['erro'] = TRUE; 
        	}
        	else{ 
          	$this->load->library('form_validation');
          	$this->form_validation->set_rules('email', 'email', 'callback_email_check');	
          	if ($this->form_validation->run() == FALSE){
            	$data['erro'] = TRUE; 
          	}
          	else
          	{
            	$this->usu->cadastrar($dados);
            	$result = $this->usu->consulta_usu();
            	
              $dados_session = array(
                'id'=>$result[0]->cliente_id,	
                'apelido'=>$this->input->post('apelido'),			
                'email'  => $this->input->post("email"),
                'logado' => TRUE,
                'compra'=>0
              );
        	
              $set_session= $this->session->set_userdata($dados_session);
        
            	redirect('/home/', 'refresh');
            }
          }
      	}
    	}
  	}  	
  	
  	foreach($campos as $campo){
    	switch($campo['type']){		
      	case 'select':      
        	$selecionado=$this->input->post($campo['name'],$campo['selected']);  
          $data['formulario'] .= form_label("<span>".$campo['title']."</span> ". form_dropdown($campo['name'], $campo['options'], $selecionado),$campo['name'],array('class'=>$campo['class']));
          break;
          
      	case "password":    		
      	case "text":
          $data['formulario'] .= form_label("<span>".$campo['title']."</span> ".form_input($campo,$this->input->post($campo['name'])), $campo['name'], array('class'=>$campo['class']));
          break;
    	}
  	}
	  $data['formulario'] .= form_hidden('data_cadastro', date("Y-m-d H:i:s"));
  	  $data['aviso'] = form_label("Preencha os campos abaixo para acessar a página de produtos personalizados","aviso_cadastro",  array('class' => 'aviso_topo'));
  	  $data['titulo'] = "Cadastro";
    	$this->load->view('cadastro_cliente', $data);
	}
	
	function email_check($email){
	  $this->load->model('Usuario_model', 'usu');
	  $val_email = $this->usu->unico('email',$email);
	  
	  if(!$val_email){
      $this->form_validation->set_message('email_check', 'O E-mail já foi cadastrado anteriormente.');
    	return FALSE;
		}
	}
	
	function cpf_check($cpf){
	  $this->load->model('Usuario_model', 'usu');
	  $val_cpf=$this->usu->unico('cpf',$cpf);
	   
	  if(!$val_cpf){
      $this->form_validation->set_message('cpf_check', 'O CPF já foi cadastrado anteriormente.');
    	return FALSE;
		}
	}
	
  function atualizar($id){	
  	$this->load->helper('form');
    $this->load->model('Usuario_model', 'usu');
    
    if($this->session->userdata('logado')!=1){
      redirect('usuario/login/0');
    }
    
    $campos = $this->usu->campos;
      		
    $data['formulario']= "";
      		
    $valores=$this->usu->info($id);
   		
    foreach($campos as $campo){    
      if($campo['name']=='senha2'){
        $campo['value']=$valores[0]->senha;		
      }
      elseif($campo['name']=='dt_nasc'){
        $dia = substr($valores[0]->$campo['name'],8,2);
        $mes = substr($valores[0]->$campo['name'],5,2);
        $ano = substr($valores[0]->$campo['name'],0,4);
        
        $dt_nasc_new = date("d/m/Y", mktime(0,0,0,$mes,$dia,$ano));
        $campo['value']=$dt_nasc_new;
      }
      else{
        $campo['value']=$valores[0]->$campo['name'];
      }
      
      
      		
      switch($campo['type']){
        case 'select':            
          $data['formulario'] .= form_label("<span>".$campo['title']." </span>". form_dropdown($campo['name'],$campo['options'], $campo['value']),$campo['name'], array('class' => $campo['class'] ));
          break;
            
        case "password":		    		
        case "text":
          $data['formulario'] .= form_label("<span>".$campo['title']." </span>".form_input(array('type'=>$campo['type'], 'name'=> $campo['name'],'id'=> $campo['id'],'value'=> $campo['value'],'class'=>$campo['class'])),$campo['name'], array('class'=>$campo['class']));
          break;
      }
    }	
   	
    if($this->input->post('nome')){	
      $dados = array();
      
      foreach($campos as $campo){
        if($campo['name']!="senha2"){
          $dados[$campo['name']] = $this->input->post($campo['name']);
        }
        
      }
      $this->usu->alterar($id,$dados);
      
      $verifica_pedido=$this->usu->verifica_compra($id);
        if(count($verifica_pedido)==0){//verifica se o cliente ja efetuou um pedido
        	$cpf = str_replace('-','',str_replace('.','',$this->input->post('cpf')));
        	$verifica_pedidoweb=$this->usu->verifica_compraweb($cpf);
      	 	if(count($verifica_pedidoweb)>0){//verifica se o cliente esta na tabela clientes do sqlserver
      	 	  //cliente ja efetuou uma compra
      	    $dados_session = array(
              'id'=>$id,
              'apelido'=>$this->input->post('apelido'),		
              'email'  => $this->input->post('email'),
              'logado' => TRUE,
              'compra'=>1
              );
      	  }
      	  else{
      	    //cliente não efetuou nenhuma compra
      	    $dados_session = array(
              'id'=>$id,
              'apelido'=>$this->input->post('apelido'),		
              'email'  => $this->input->post('email'),
              'logado' => TRUE,
              'compra'=>0
              );      	  
      	  }//verifica se o cliente esta na tabela clientes do sqlserver
      	}//verifica se o cliente ja efetuou um pedido
      	else{
          	$dados_session = array(
               'id'=>$id,
              'apelido'=>$this->input->post('apelido'),		
              'email'  => $this->input->post('email'),
              'logado' => TRUE,
              'compra'=>1
              );
        	
        }//fim do verifica se o cliente ja efetuou uma compra
      
        $set_session= $this->session->set_userdata($dados_session);
        
      redirect('usuario/ver_cadastro/', 'refresh');
    }
    else{
      $data['aviso'] = form_label("Preencha os campos abaixo para manter os seus dados atualizados","aviso_cadastro",  array('class' => 'aviso_topo'));
      $data['titulo']="Atualizar Dados";
      $this->load->view('cadastro_cliente', $data);
    }
	}
	function sair(){
  	$this->session->sess_destroy();
  	redirect('/home/', 'refresh');  	
	}
	
}